package com.snack.shop.service;

import com.snack.shop.entity.SystemConfig;

import java.math.BigDecimal;
import java.util.List;

/**
 * 系统配置服务接口
 */
public interface SystemConfigService {

    /**
     * 获取配置值
     */
    String getConfigValue(String configKey);

    /**
     * 获取配置值（BigDecimal类型）
     */
    BigDecimal getConfigValueAsDecimal(String configKey, BigDecimal defaultValue);

    /**
     * 获取配置值（Integer类型）
     */
    Integer getConfigValueAsInteger(String configKey, Integer defaultValue);

    /**
     * 获取配置值（Boolean类型）
     */
    Boolean getConfigValueAsBoolean(String configKey, Boolean defaultValue);

    /**
     * 更新配置
     */
    void updateConfig(String configKey, String configValue);

    /**
     * 获取所有配置
     */
    List<SystemConfig> getAllConfigs();

    /**
     * 批量更新配置
     */
    void batchUpdateConfigs(List<SystemConfig> configs);
}

